Machine and equipment assets are engineered to perform particular tasks as part of a process. For example, assets can include, among other things and without limitation, industrial manufacturing equipment on a production line, drilling equipment for use in mining operations, wind turbines that generate electricity on a wind farm, transportation vehicles, and the like. As another example, assets may include devices that aid in diagnosing patients such as imaging devices (e.g., X-ray or MRI systems), monitoring equipment, and the like. The design and implementation of these assets often takes into account both the physics of the task at hand, as well as the environment in which such assets are configured to operate.
Low-level software and hardware-based controllers have long been used to drive machine and equipment assets. However, the rise of inexpensive cloud computing, increasing sensor capabilities, and decreasing sensor costs, as well as the proliferation of mobile technologies, have created opportunities for creating novel industrial and healthcare based assets with improved sensing technology and which are capable of transmitting data that can then be distributed throughout a network. As a consequence, there are new opportunities to enhance the business value of some assets through the use of novel industrial-focused hardware and software.
One of the obstacles in designing a computing platform that supports machine and equipment focused software is the wide variety of software that can be of interest for a tenant. For example, a power plant operator may be interested in looking at many software and hardware components related to the plant in order to manage/view various systems, sub-systems, and applications associated therewith, including generators, cooling towers, a plant floor, materials, alerts, fuel usage, power protection, power distribution, control systems, analytics, and/or the like. In order to monitor and control these components, independently developed and distinct applications offered by different vendors and running on different systems are often required. As a result, the operator must access different systems and applications in order to view and interact with the different applications. However, managing the behaviors of these application can be a time-consuming and tedious operation requiring a developer or a tenant to make changes on an application-by-application basis.